iT邦幫忙

2024 iThome 鐵人賽

DAY 10
1
DevOps

Grafana Zero to Hero系列 第 10

Grafana Zero to Hero - Data Source:從設定到探索

  • 分享至 

  • xImage
  •  

Grafana 的策略是 Big Tent,目的是建立一個開放的平台,透過 Data Source 支援多種資料來源。近期他們在 GitHub 上發布了 Data Source Roadmap,記錄各種新 Data Source 的開發狀態,並邀請社群與使用者提供意見與回饋。社群成員也可以提出想新增的 Data Source,讓 Big Tent 的平台越發壯大。

Big Tent
可以容納各種 Data Source 的 Big Tent,圖片來源:Grafana overview deck

設定與管理

Grafana 的角色是統一的查詢與視覺化介面。當使用者檢視或查詢資料時,Grafana 服務會與 Data Source 連線並進行查詢。因此,必須確保 Grafana 服務有連線所需的資訊、權限以及可連線的設定,例如網域、IP、防火牆等。Data Source 與使用者所處的環境無關,僅需與 Grafana 服務連線即可。

Data Source
已建立的 Data Source,點擊 Add Data Source 可新增其他 Data Source

Add Data Source
內建或已安裝的 Data Source Plugin,可選擇要新增的 Data Source

除了內建 Data Source 外,還可以透過 Plugin 安裝其他 Data Source,例如 MySQLSQLiteGoogle SheetsElasticsearch。但要注意,有些 Plugin 只適用於 Grafana Cloud 或 Enterprise 版本,如 JiraDynamoDBDynatraceNew Relic,在 Data Source 頁面上可以看到標記為 Enterprise 的插件。

Data Source List
Grafana 支援的 Data Source 清單

Add MySQL
在清單中安裝與建立 MySQL Data Source

Add Jira
Jira Data Source 需要 Enterprise 版本

每個 Data Source 都有特定的連接需求,例如 API 需要 API KEY 或 Token,資料庫則需要帳號和密碼等,這些資訊都需要在建立時設定。

Prometheus Setting

PostgreSQL Setting

Explore

設定好 Data Source 後,可以在 Explore 頁籤中挑選要探索的 Data Source。每種 Data Source 都有自己專屬的查詢介面,DB 類型可輸入 SQL,Prometheus 和 Loki 則可輸入查詢語法並選擇 Label。

Explore
左側的選單可以進入 Explore 頁籤,上方可以選擇 Data Source

Prometheus Explore
Prometheus Explore 查詢介面

PostgreSQL Explore
PostgreSQL Explore 查詢介面

在查詢時,可以透過 Query Inspector 功能排查查詢中的問題。Query Inspector 的功能在 Dashboard 編輯 Panel 時也可使用。

Query Inspector

Query Inspector 的 Tab 有:

  1. Stats:顯示查詢時間、回傳資料筆數等。
  2. Query:傳送給 Grafana 並轉送至 Data Source 的 Request 與 Response。
  3. JSON:以 JSON 格式檢視回傳資料。
  4. Data:以 Table 檢視回傳資料,並可下載為 CSV。
  5. Error:顯示查詢錯誤訊息(僅在出錯時顯示)。

Query Inspector query

Query Inspector json

Query Inspector data

雖然 Data Source 幾乎都是以純讀取的形式操作,不會進行異動,但可能會有資料控管的疑慮,所以 Explore 的功能只有當使用者具有 Editor 角色權限時才能夠使用,藉此達到權限控管的效果。角色與權限的詳細說明將在後續章節中介紹。

TestData

TestData 是一個實用的 Data Source,它提供了多種範例資料,讓使用者能快速體驗視覺化效果,並支援載入 CSV 資料。

  • Time Series
    • Random Walk:隨機產生 Time Series,時間範圍與 Dashboard 的查詢時間一致,保證能看到資料。
    • CSV Metrics Values:根據指定的數值產生 Time Series,會平均分佈在 Dashboard 的查詢時間範圍。
    • Conditional Error:類似 CSV Metrics Values,但當輸入值為空時,會觸發不同的錯誤訊息,可用來模擬錯誤情況。

Random Walk

CSV Metrics Values

Conditional Error

  • Table
    • Random Walk Table:Random Walk 的進階版,包含額外的欄位值。
    • CSV File:預設提供多個範例 CSV 檔案,如 gdp_per_capita.csv 人均 GDP、browser_marketshare.csv 瀏覽器市場占比。
    • CSV Content:可載入自訂 CSV 內容,但需注意格式正確,若欄位與資料數不一致,會顯示錯誤訊息 No Data

Random Walk Table

CSV File

CSV Content

Lab

範例程式碼:https://github.com/blueswen/grafana-zero-to-hero/tree/main/04-datasource/01-basic

此 Lab 會建立

  1. cAdvisor:收集 Container 資料
  2. Node Exporter:收集運行的機器(Node)的資料
  3. Prometheus:採集 cAdvisor、Node Exporter 的 Metrics
  4. Grafana:
    1. 查看預先建立好的 Prometheus Data Source 設定方式
    2. 操作 Explore 查閱預先建立好的 Prometheus 與 TestData

Quick Start

  1. 啟動所有服務

    docker-compose up -d
    
  2. 檢視服務

    1. Grafana: http://localhost:3000,登入帳號密碼為 admin/admin
  3. 關閉所有服務

    docker-compose down
    

上一篇
Grafana Zero to Hero - Dashboard:讓 Variable 組合出無限可能
下一篇
Grafana Zero to Hero - Data Source:Prometheus
系列文
Grafana Zero to Hero30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言